home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr48 / pasclern.zip / ENTYPES.PAS < prev    next >
Pascal/Delphi Source File  |  1993-04-01  |  2KB  |  62 lines

  1. PROGRAM enumerated_types;
  2.  
  3. TYPE days = (mon,tue,wed,thu,fri,sat,sun);
  4.      time_of_day = (morning,afternoon,evening,night);
  5.  
  6. VAR  day              : days;
  7.      time             : time_of_day;
  8.      regular_rate     : REAL;
  9.      evening_premium  : REAL;
  10.      night_premium    : REAL;
  11.      weekend_premium  : REAL;
  12.      total_pay        : REAL;
  13.  
  14. BEGIN  (* main program *)
  15.  
  16. WRITELN('Pay rate table':33);
  17. WRITELN;
  18. WRITE('  DAY        Morning  Afternoon');
  19. WRITELN('  Evening    Night');
  20. WRITELN;
  21.  
  22. regular_rate := 12.00;     (* This is the normal pay rate *)
  23. evening_premium := 1.10;   (* 10 percent extra for working late *)
  24. night_premium := 1.33;     (* 33 percent extra for graveyard *)
  25. weekend_premium := 1.25;   (* 25 percent extra for weekends *)
  26.  
  27.   FOR day := mon TO sun DO
  28.   BEGIN
  29.  
  30.     CASE day OF
  31.       mon : WRITE('Monday   ');
  32.       tue : WRITE('Tuesday  ');
  33.       wed : WRITE('Wednesday');
  34.       thu : WRITE('Thursday ');
  35.       fri : WRITE('Friday   ');
  36.       sat : WRITE('Saturday ');
  37.       sun : WRITE('Sunday   ');
  38.     END;  (* of CASE statement *)
  39.  
  40.     FOR time := morning TO night DO
  41.     BEGIN
  42.       CASE time OF
  43.         morning   : total_pay := regular_rate;
  44.         afternoon : total_pay := regular_rate;
  45.         evening   : total_pay := regular_rate * evening_premium;
  46.         night     : total_pay := regular_rate * night_premium;
  47.       END;  (* of CASE statement *)
  48.  
  49.       CASE day OF
  50.         sat : total_pay := total_pay * weekend_premium;
  51.         sun : total_pay := total_pay * weekend_premium;
  52.       END;  (* of CASE statement *)
  53.  
  54.       WRITE(total_pay:10:2);
  55.  
  56.     END;  (* of "time" loop *)
  57.     WRITELN;
  58.   END; (* of FOR loop *)
  59.  END.  (* of main program *)
  60.  
  61.  
  62.